This application relates generally to link capacity utilization and, more particularly, to determining link capacity utilization for High Level Data Link Control (HDLC) encoded links.
The HDLC protocol consists of rules for transmitting data between network points or nodes. In HDLC, data is organized into a unit (called a frame) and sent across a network to a destination that verifies its successful arrival. The HDLC protocol also manages the flow (or pacing) at which data is sent. HDLC is one of the most commonly used protocols in Layer 2 of the Open Systems Interconnection communication reference model (Layer 1 is the detailed physical level that involves actually generating and receiving the electronic signals while Layer 3 is the higher level that has knowledge about the network, including access to router tables that indicate where to forward data). Each piece of data is encapsulated in an HDLC frame by adding a trailer and a header (i.e. data link control information). The header contains an HDLC address and an HDLC control field. The trailer is found at the end of the frame, and contains a Cyclic Redundancy Check which detects any errors that may occur during transmission. The frames (or data packets) are separated by HDLC flag sequences (or sync flags) which are transmitted between each frame and whenever there is no data to be transmitted. When data is sent, programming in layer 3 creates a frame that usually contains source and destination network addresses.
Variations of HDLC are also used for the public networks that use the X.25 communications protocol (a network utilizing X.25 is one in which packets of data are moved to their destination along routes determined by network conditions as perceived by routers and reassembled in the right order at the ultimate destination) and for frame relay, a protocol used in public and private local area networks and wide area networks. In the X.25 version of HDLC, the data frame contains a packet and a peer-to-peer communication is used with both ends (receive and transmit) able to initiate communication on duplex links. This mode of HDLC is known as Link Access Procedure Balanced. LAPD, for ISDN D channels and Frame Relay, and LAPM, for error-correcting modems, are other variations of HDLC that may be used.
HDLC encoded links (or backhaul links) are often used in a wireless communication network to provide a connection between a base station controller (BSC) and a base transceiver station (BTS). A mobile phone utilizes the BTS(s) to transmit and receive information.
In order to effectively design and implement the HDLC encoded links in a wireless communication network, the capacity utilization of the HDLC encoded links should be determined. In doing so, the proper number of links and supported bandwidth can be provisioned. If the capacity is not known, an incorrect number of links may be provisioned leading to a situation in which a greater amount or a smaller amount of capacity is available. Both situations lead to increased cost and inefficiencies in the network.
A number of conventional methods exist for determining the capacity utilization of the HDLC encoded links. In general, the frame transmission time, total number of available bits in the frame, and sync flag size (typically 1 byte) are known and at least one sync flag separates the data packets.
In one method, fixed length data packets are used. As such, the link capacity may be determined because the total number of available bits in the frame is divided equally by the fixed length packet size to determine the number of data packets for the frame. For example, if the frame time is 1 second, there may be approximately 1,536,000 available bits in the frame. If each packet size was fixed to hold 100,000 bits, 16 data packets would be needed to transport the available bits. Additionally, since a sync flag precedes and follows each data packet, 17 sync flags (each containing 8 bits), would also be needed. The first 15 data packets would be sent at full capacity but the last data packet would only contain 36,000 bit and would thus only be sent at 36% of capacity. Thus, although the link capacity may be determined by using fixed length data packets, inefficiencies exist in sending data packets that are nearly ⅔ empty over a link where thousands of frames (and thus data packets) may be sent in the span of a few minutes.
In another method, the number of data packets may be counted (utilizing a packet counter) and an average length of each data packet may be assumed. Although the link capacity may be determined, it will not be accurate because the actual data packet may be far bigger and/or far smaller than the chosen average length.
In another method, analytical simulation may be used to determine the link capacity based on various parameters such as speech activity detection, voice coder data rate, and hand-off factors. Although the link capacity may be determined, it will not be accurate because the actual parameters may vary from cell to cell within a network and from network to network.
In another method, the number of bits in data packets and sync flags may be counted (utilizing a frame terminator) and, based on the results, the link capacity may be determined. The limitation with this method, and with the methods previously discussed, is the inability to determine if multiple flags (or repeated flags) between data packets exist. Additional sync flags may be sent if no data was being transmitted at a particular moment in order to maintain the transparency of the link. In such a scenario, the multiple sync flags would not be accounted for resulting in an inaccurate link capacity utilization reading.
In another method, the number of data frames and sync flags may be counted and, based on the results, the number of repeated sync flags may be determined. Although this method may provide a solution for determining the number of repeated sync flags, additional resources (such as a plurality of counters) and added complexity (such as increased computing) are needed to do so.
Therefore, an improved system and method for determining link capacity utilization for HDLC encoded links is desired to reduce or eliminate these limitations and design complexities.
In response to these and other limitations, provided herein is a unique system and method for determining link capacity utilization for High Level Data Link Control (HDLC) encoded links. The links transport frames comprised of a known number of bits during a time period and the frames comprise variable length data packets and uniform length sync flags. A circuit, which aids in determining the link capacity utilization, includes a flag detector, a counter, a timeout register, and a shadow register.
In one embodiment, a sync flag count state is entered if a sync flag is detected by the flag detector. The counter is then incremented if a repeated sync flag is detected within a next data byte. When the time period expires the number of repeated sync flags are forwarded to the shadow register which is coupled to the counter. A processor and the timeout register, which are coupled to the counter, respectively access the number of repeated sync flags and reset the counter. The processor then calculates the link capacity utilization.
In some embodiments, a number of repeated sync flag bits is subtracted from the number of frame bits in the time period to produce a value and that value is divided by the number of frame bits in the time period to produce the percentage of link utilization.
In some embodiments, the sync flag count state is remained in if a repeated sync flag is detected within the next data byte.
In some embodiments, the sync flag count state is exited and the frames are monitored for sync flags by the flag detector if the repeated sync flag is not detected within the next data byte.
In some embodiments, the timeout register receives a timing pulse (where the timing pulse alerts the counter that the time period has expired), forwards to the shadow register the number of sync flags and sends an interrupt to the processor to access the number of repeated sync flags.
In some embodiments, the circuit resides in a base transceiver station, a base station controller, and/or between the base transceiver station and the base station controller in a communication network.